This invention relates to a system for remotely loading and remotely maintaining an electronic card belonging to automation equipment and comprising a minimum of an interface component complying with the JTAG Standard. Such a system can be applied to any automation application in the area of industrial automation processes, building automation or the monitoring/control of electronic distribution networks in particular. The invention equally involves automation equipment comprising an electronic card supporting such a system for remote loading and remote maintenance.
Automation equipment refers hereafter, for example, to a programmable logic controller, a numerical control, a monitoring/control station, a dedicated module or an Input/Output module of a programmable logic controller, a dialogue terminal, a speed controller, and also to any equipment or module capable of running a program so as to provide one or more automation functions in an automation application. Automation equipment includes electronic cards that now often incorporate complex integrated circuits, such as ASIC cards. This integration presupposes the capability of making increasingly more advanced diagnoses of electronic cards. The automation equipment monitors and controls automation applications for which any down-time is sometimes very harmful. That is why there is an increasing demand for knowledge of the functional state of the automation equipment at any time, for safety and productivity reasons in particular.
Since automation equipment is usually installed at a remote site, a remote diagnosis function can prove to be vital in detecting a breakdown or foreseeing any malfunction in an electronic card or making any corrections remotely. However, during this diagnosis, sometimes it is essential not to disrupt the processing unit of an electronic card that is running a program that monitors/controls the automation application, which could alter the response time or the cycle times at the level of the automation application in particular. This is why remote diagnosis must be able to be carried out without interfering with the program(s) which the processing unit is running. Any diagnosis must also be possible even when the processing unit of the electronic card is not functioning, for example in the event of physical breakdown of the processing unit or in the event of a fault in the operating system of the processing unit.
Moreover, during the manufacture of an electronic card, it is particularly advantageous to be able to quickly remotely load programs to the factory, such as firmware, into some of the electronic card memories, for example FLASH type memories, when the processing unit of the electronic card is not yet operational. These possibilities simplify the manufacturing processes since these types of programs then only have to be installed at the time of manufacture of the electronic card thus avoiding having to store already programmed memories in any intermediate way. Moreover, as the software contained in the FLASH memories may be updated (improvements in functionality, corrections of anomalies), it will be necessary, at such a time, to update the already programmed stored memories. Hence, there is an advantage in blank storing them on electronic cards then loading the software at the last moment with the up-to-date version.
Finally, while running automation equipment at a remote site, a remote maintenance system can advantageously provide a remote loading function especially for making corrections and applying updates or new versions of programs.
The IEEE (Institute of Electrical and Electronics Engineers) has adopted the IEEE1149.1 Standard (IEEE Standard Test Access Port and Boundary Scan Architecture), also called the JTAG Standard (Join Test Action Group), to define an in situ standard test for integrated circuits or complex components of an electronic card that do not have physical access to equipotentials. Such a test may be carried out on cards that have functionally broken down as it uses very limited resources that are different (specific to the JTAG) from those used for the functioning of the card. To do that, each component to be tested in conformity with this JTAG Standard must have an access port (TAP: Test Access Port) made up of five specific signals including an input tab (TDI) and an output tab (TDO), as well as a Boundary Scan which allows the simulation of all the inputs/outputs of the component by serialising them through this Boundary Scan.
The document EP0511752 describes an integrated JTAG circuit that has an optional interface register (TDR: Test Data Register). This integrated JTAG circuit is mounted on an electronic card comprising a processing unit and an internal bus. The TDR interface register is a Boundary Scan which can be read and written serially by an external JTAG Server by means of signals complying with the JTAG Standard but the TDR interface register also has the special feature of being able to be loaded or downloaded in parallel into a double memory port of the integrated circuit. The information contained in the TDR interface register is then easily accessible to the processing unit of the electronic card in this double memory port via the internal bus. It is therefore possible, to prompt requests which will be loaded into a memory of the electronic card from an external JTAG Server and which can be run by the processing unit (for example, requests to READ, WRITE, RUN, STOP, . . . ) and thus exchange information between an external server and the processing unit.
This solution then allows you to run auto tests remotely and make diagnoses remotely, so long as the processing unit of the electronic card is operational and can run a basic program. Nevertheless, these functionalities do not allow e software to be remote loaded into a memory of the electronic card while the processing unit of the electronic card is not operational. Furthermore, any request or instruction from an external JTAG Server to carry out a remote diagnosis will interfere with the functioning of the processing unit insofar as this solution uses run capabilities of the processing unit, which can harm some applications, especially real-time automation applications.